home *** CD-ROM | disk | FTP | other *** search
- 0 REM********************************** * TINY EPROMMER V 2.0 *
- 1 REM* ------------------- * * 1987 RUEDIGER STAHL *
- 2 REM* HURTENSTR. 20 * * 8138 FRIEDING-ANDECHS *
- 3 REM* * * *
- 9 REM**********************************
- 10 :
- 20 PRINT"[147]":POKE52,48:POKE56,48:POKE51,0:POKE55,0:POKE46,46:POKE45,150:CLR
- 30 IFPEEK(49152)=32ANDPEEK(49400)=169THEN50
- 40 PRINT"[147] TINY EPROMMER V2.0":PRINT" BY RUEDIGER STAHL
- 41 [153]" HURTENSTR. 20":[153]" 8138 FRIEDING-ANDECHS
- 45 LOAD"MA.TINY EPROMMER",8,1
- 50 LM=49152:DR=49296:BL=49464:BS=49514:CO=49606:CL=49716:FI=49848
- 55 SYS49768
- 59 REM TYPEN
- 60 DIMT$(5),AL$(3)
- 61 T$(0)="2764 / 21 V "
- 62 T$(1)="27128/ 21 V "
- 63 T$(2)="27256/12.5 V"
- 64 T$(3)="8 KB /12.5 V"
- 65 T$(4)="16 KB/12.5 V"
- 66 T$(5)="32 KB/ 21 V "
- 70 AL$(0)=" TURBO SPEED "
- 71 AL$(1)=" FAST & SECURE "
- 72 AL$(2)="STANDARD 50 MS"
- 80 EI%=16
- 90 IFPEEK(820)<>0THENAL=INT(PEEK(820)/16):TY=PEEK(820)-AL*16
- 91 IFTY>5THENTY=0
- 92 IFAL>2THENAL=0
- 99 :
- 100 REM * HAUPTMENUE
- 105 POKE53280,5:POKE53281,0:POKE650,0:SYSCL
- 110 PRINT"[153]>>> TINY EPROMMER V2.0 <<<";
- 120 PRINT"----------------------------------------"
- 130 PRINT" BITTE WAEHLEN:"
- 140 PRINTTAB(6)"'F1' = EPROM BRENNEN
- 145 [153][163]6)"'F3' = TYP/ALLGORITHMUS WAEHLEN
- 150 PRINTTAB(6)"'F5' = FILES/DIREKTORY
- 155 [153][163]6)"'F7' = ZURUECK ZU BASIC
- 160 PRINTTAB(6)"'F2' = EPROM LEERTEST
- 170 [153][163]6)"'F4' = EPROM AUSLESEN
- 180 PRINTTAB(6)"'F6' = EPROM VERIFY
- 190 [153][163]6)"'F8' = TOOLS
- 200 PRINT"----------------------------------------";
- 210 PRINT">>> "T$(TY)" MIT "AL$(AL)" <<[157]"CHR$(148)"<";
- 220 T=TY:VP=0:IFT>1ANDT<5THENVP=1
- 230 IFT>2THENT=T-3
- 250 REM *** AUSWAHL
- 260 GETA$:IFA$=""THEN260
- 270 A=ASC(A$):IFA<133ORA>140THEN260
- 280 ONA-132GOSUB 1000,2000,3000,4000,5000,6000,7000,8000
- 390 GOTO100
- 1000 REM *** BRENNEN
- 1010 SYSCL
- 1015 PRINT" BITTE WAEHLEN:
- 1020 [153][163]6)"'F1' = ZURUECK
- 1025 PRINTTAB(6)"'F3' = SPEICHERINHALT BRENNEN
- 1030 [153][163]6)"'F5' = EINZELBYTEPROGRAMMIERUNG
- 1050 GETA$:IFA$=""THEN1050
- 1055 A=ASC(A$):IFA<133ORA>138THEN1050
- 1060 SYSCL
- 1065 ONA-132GOTO 1100,1200,1300
- 1100 RETURN
- 1200 SYSCL:PRINT"SPEICHERINHALT IN EPROM BRENNEN:"
- 1205 D=8192*2^T-1:GOSUB1500:GOSUB1600
- 1206 IFE1-A1<>E2-A2THEN1200
- 1210 PRINT"EPROM-TYP: ";T$(TY)
- 1220 PRINT"ALLGORITHMUS:";AL$(AL)
- 1225 GOSUB50050:IFA$="N"THEN1200
- 1230 SYSCL:PRINT" *** EPROM WIRD GEBRANNT ***"
- 1240 SYS49920,AL,VP,T,A1,A2,E2
- 1245 IFPEEK(2)>0THENGOSUB50700
- 1250 GOSUB50010
- 1260 RETURN
- 1300 SYSCL:PRINT"EIN BYTE PROGRAMMIEREN:"
- 1305 PRINT"EPROMADRESSE (HEX) ? 0000";:A$="0000":GOSUB50120
- 1310 GOSUB50400:A2=A:IFA<0ORA>8192*2^T-1THEN1300
- 1315 PRINT"WERT (HEX) ? 00";:A$="00":GOSUB50120:A$="00"+A$
- 1320 GOSUB50400:IFA<0ORA>255THEN1300
- 1340 GOSUB50050:IFA$="N"THEN1300
- 1350 A1=53247:POKEA1,A:E1=A1:E2=A2
- 1360 PRINT"EPROM-TYP: ";T$(TY)
- 1365 PRINT"ALLGORITHMUS:";AL$(AL)
- 1370 GOSUB50050:IFA$="N"THEN1300
- 1375 GOSUB1230
- 1395 GOTO1000
- 1500 PRINT"ADRESSEN IM COMPUTER (HEX):"
- 1505 A$="3000":PRINT"ANFANGSADRESSE ? "A$;:GOSUB50120
- 1510 GOSUB50400:GOSUB50600
- 1511 A1=A:IFA=0THENPRINT"[145][145][145]":GOTO1505
- 1515 A=A1+D:GOSUB50600:IFA=0THENA=49151
- 1516 GOSUB50500
- 1520 PRINT"ENDADRESSE ? "A$;:GOSUB50120
- 1530 GOSUB50400:GOSUB50600
- 1531 IFA1<49152ANDA>57334THENA=0
- 1540 E1=A:IFA=0ORA<A1THENPRINT"[145][145][145][145]":GOTO1505
- 1545 D=A-A1:RETURN
- 1600 PRINT"ADRESSEN IM EPROM (HEX):"
- 1605 A$="0000":PRINT"ANFANGSADRESSE ? "A$;:GOSUB50120
- 1610 GOSUB50400:A2=A
- 1611 IFA>8192*2^T-1ORA<0THENPRINT"[145][145][145]":GOTO1605
- 1615 A=A2+D:IFA>8192*2^T-1THENA=8192*2^T-1
- 1618 GOSUB50500
- 1620 PRINT"ENDADRESSE ? "A$;:GOSUB50120
- 1630 GOSUB50400:E2=A
- 1635 IFA>8192*2^T-1THENA=A2-1
- 1640 E2=A:IFA<A2THENPRINT"[145][145][145][145]":GOTO1505
- 1645 D=A-A2:RETURN
- 2000 REM *** TYP/ALLGORITHMUS
- 2010 SYSCL:T=TY
- 2015 PRINT" EPROMTYP UND ALLGORITHMUS WAEHLEN:"
- 2020 PRINTTAB(6)"'F1' = ZURUECK
- 2025 [153][163]6)"MIT CURSERTASTEN AUSWAHLEN
- 2030 PRINTTAB(6)"MIT RETURN ABSPEICHERN
- 2050 [153]"";
- 2060 [129]A[178]0[164]5:[139]T[178]A[167][153]"";
- 2065 [139]A[177]2[167][153]" SPEZALTYPEN: "T$(A)" ":[137]2075
- 2070 [153]" ";T$(A);" "
- 2075 [130]
- 2100 [161]A$
- 2105 [139]A$[178]"INPUT"[167]2300
- 2106 [139]A$[178][199](13)[167]2200
- 2110 [139]A$[178]"ON"[167]T[178]T[171]1:[139]T[179]0[167]T[178]5
- 2115 [139]A$[178]""[167]T[178]T[170]1:[139]T[177]5[167]T[178]0
- 2120 [137]2050
- 2200 [153]"";
- 2210 [129]A[178]0[164]2
- 2215 [139]AL[178]A[167][153]"";
- 2220 [153]" ";AL$(A);" "
- 2225 [130]
- 2250 [161]A$
- 2255 [139]A$[178]"INPUT"[176]A$[178][199](13)[167]2300
- 2265 [139]A$[178]"ON"[167]AL[178]AL[171]1:[139]AL[179]0[167]AL[178]2
- 2270 [139]A$[178]""[167]AL[178]AL[170]1:[139]AL[177]2[167]AL[178]0
- 2290 [137]2200
- 2300 [151]820,T[170]AL[172]16:TY[178]T:[142]
- 3000 [143] *** FILES/DIREKTORY
- 3010 [158]CL
- 3015 [153]" BITTE WAEHLEN:"
- 3020 [153][163]6)"'F1' = ZURUECK
- 3025 PRINTTAB(6)"'F3' = DIREKTORY
- 3030 [153][163]6)"'F5' = PROGRAMM LADEN
- 3035 PRINTTAB(6)"'F7' = PROGRAMM SAVEN [160]
- 3040 [153][163]6)"'F2' = FLOPPY BEFEHL CLOSE
- 3045 PRINTTAB(6)"'F4' = FEHLERKANAL [160]
- 3050 [161]A$:[139]A$[178]""[167]3050
- 3055 A[178][198](A$):[139]A[179]133[176]A[177]138[167]3050
- 3060 [158]CL
- 3065 [145]A[171]132[137] 3100,3200,3300,3400,3500,3600
- 3100 [142]
- 3200 :
- 3205 [158]DR
- 3210 [141]50010
- 3220 [137]3000
- 3300 [158]CL
- 3305 [153]"LOAD PROGRAMM:":[141]3310:[137]3350
- 3310 [153]"FILENAME ? ";
- 3315 [141]50100:N$[178]A$:[139]N$[178]""[167]3000
- 3316 [139]N$[178]""[167][153]"ONONON":[137]3310
- 3320 A$[178]"8":[153]"GERAETEADRESSE ? "A$;
- 3325 [141]50120:G[178][197](A$)
- 3326 [139]G[179]1[176]G[177]15[167][153]"ONONON":[137]3320
- 3330 [142]
- 3335 :
- 3350 [139]N$[178]""[167][142]
- 3351 [139]N$[178]"$"[167]3200
- 3354 [153]"UNZULAESSIGE BEREICHE:"
- 3355 [153]" $0000-$2FFF UND $C000-$DFFF"
- 3360 A$[178]"3000":[153]"ANFANGSADRESSE (HEX) ? ";A$;
- 3365 [141]50120:[141]50400
- 3370 [141]50600:[139]A[178]0[167]3300
- 3380 [141]50050:[139]A$[178]"N"[167][158]CL:[137]3300
- 3390 [158]BL,N$,G,A
- 3391 [139]ST[179][177]64[167][153]" I/O-ERROR":[137]3394
- 3392 A[178][194](781)[170][194](782)[172]256[171]1:[141]50500:[153]" PROGRAMMENDE: $";A$
- 3394 [141]50010
- 3395 [139][194](49152)[178]32[175][194](49400)[178]169[167]3399
- 3396 [153]" PROGRAMM ZU LANG
- 3397 PRINT" EPROMER DISKETTE EINLEGEN":GOSUB50010:LOAD"MA.TINY EPROMER",8,1
- 3399 GOTO3000
- 3400 SYSCL
- 3405 PRINT"SAVE PROGRAMM:":GOSUB3310
- 3406 IFN$=""THEN3000
- 3410 PRINT"ANFANGSADRESSE (HEX) ? ";
- 3420 GOSUB50100:GOSUB50400
- 3430 IFA=-1THEN3400
- 3435 B=A
- 3440 PRINT"ENDADRESSE (HEX) ? ";
- 3445 GOSUB50100:GOSUB50400
- 3450 A=A+1:IFA>65535THENPRINT"LETZTES BYTE GEHT VERLOHREN":A=65535
- 3460 GOSUB50050:IFA$="N"THENSYSCL:GOTO3400
- 3470 SYSBS,N$,G,B,A
- 3471 IFST<>0THENPRINT" I/O-ERROR":GOSUB50010
- 3475 GOTO3000
- 3500 :
- 3505 PRINT"FLOPPY-BEFEHL:";
- 3510 EI%=25:GOSUB50100
- 3520 OPEN1,8,15,A$:CLOSE1
- 3600 :
- 3605 OPEN1,8,15:PRINT"DISK-STATUS: ";
- 3610 GET#1,A$:PRINTA$;:IF(ST AND64)=0GOTO3610
- 3615 CLOSE1:GOSUB50010:GOTO3000
- 3620 :
- 4000 REM *** BASIC
- 4005 SYSCL:PRINT"PROGRAMM BENENDEN:
- 4010 [141]50050:[139]A$[178]"N"[167][142]
- 4020 [158]49816:[128]:[138]
- 5000 [143] *** EPROM LEERTEST
- 5010 [158]CL:[153]"EPROM LEERTEST: (VERGLEICH MIT $FF)
- 5020 GOSUB50050:IFA$="N"THENRETURN
- 5030 SYS49929,T,0,0,8192*2^T
- 5035 IFPEEK(2)=15THENPRINT" EPROM NICHT GELOESCHT !":GOSUB50700
- 5036 IFPEEK(2)=0THENPRINT" EPROM GELOESCHT !"
- 5040 GOSUB50010:RETURN
- 6000 REM *** EPROM AUSLESEN
- 6010 SYSCL
- 6015 PRINT" BITTE WAEHLEN:
- 6020 [153][163]6)"'F1' = ZURUECK
- 6025 PRINTTAB(6)"'F3' = EPROMINHALT IN COM-
- 6026 [153][163]13)"PUTER EINLESEN
- 6030 PRINTTAB(6)"'F5' = EINZELBYTEAUSLESE
- 6050 [161]A$:[139]A$[178]""[167]6050
- 6055 A[178][198](A$):[139]A[179]133[176]A[177]135[167]6050
- 6060 [158]CL
- 6070 [145]A[171]132[137]6100,6200,6300
- 6100 [142]
- 6200 [158]CL:[153]"EPROMINHALT IN COMPUTER EINLESEN:
- 6205 D=8192*2^T-1:GOSUB1600:GOSUB1500
- 6206 IFE1-A1<>E2-A2THEN6200
- 6225 GOSUB50050:IFA$="N"THEN6200
- 6230 SYS49923,T,A1,A2,E2
- 6240 GOSUB50010:RETURN
- 6300 SYSCL:PRINT"EIN BYTE AUSLESEN:
- 6305 [153]"EPROMADRESSE (HEX) ? 0000_CMD";:A$[178]"0000":[141]50120
- 6310 [141]50400:A2[178]A:[139]A[179]0[176]A[177]8192[172]2[174]T[171]1[167]6300
- 6340 [141]50050:[139]A$[178]"N"[167]6300
- 6350 A1[178]53247:[158]49923,T,A1,A2,A2
- 6355 A[178][194](A1):[141]50500:[153]"WERT:";[194](A1);"= $";A$
- 6360 [141]50010:[137]6000
- 7000 [143] *** EPROM VERIFY
- 7100 [158]CL:[153]"EPROMINHALT MIT COMPUTER VERGLEICHEN:
- 7105 D=8192*2^T-1:GOSUB1600:GOSUB1500
- 7106 IFE1-A1<>E2-A2THEN7100
- 7125 GOSUB50050:IFA$="N"THEN7100
- 7130 SYS49926,T,A1,A2,E2
- 7135 IFPEEK(2)=15THENPRINT" VERIFY ERROR !":GOSUB50700:GOTO7140
- 7136 PRINT" EPROMINHALT CORRECT !"
- 7140 GOSUB50010:RETURN
- 8000 REM *** TOOLS
- 8010 SYSCL
- 8015 PRINT" BITTE WAEHLEN:"
- 8020 PRINTTAB(6)"'F1' = ZURUECK
- 8025 [153][163]6)"'F3' = MODULGENERATOR
- 8030 PRINTTAB(6)"'F5' = TINY-MON
- 8035 [153][163]6)"'F7' = SPEICHERBER. VERSCHIEBEN
- 8040 PRINTTAB(6)"'F2' = SPEICHERBER. FUELLEN
- 8050 [161]A$:[139]A$[178]""[167]8050
- 8055 A[178][198](A$):[139]A[179]133[176]A[177]137[167]8050
- 8060 [158]CL
- 8065 [145]A[171]132[137] 8100,8200,8300,8110,8120
- 8100 [142]
- 8110 [141]8450:[137]8000
- 8120 [141]8600:[137]8000
- 8200 [158]CL:[153]" MODULSTARTGENERATOR WIRD NACHGELADEN.
- 8210 GOSUB50050:IFA$="N"THENRETURN
- 8220 SYS49816
- 8230 LOAD"MODULGEN. V2.0",8
- 8300 SYSCL:POKE650,128:AD=12288:PRINT" TINY-MON:
- 8305 [153]" 'F1' = ZURUECK
- 8308 PRINT" 'F3' = TRANSVER
- 8309 [153]" 'F4' = SPEICHERBEREICH FUELLEN
- 8310 PRINT" 'F5'/'F7';'F6'/'F8';CRSR = SCROLL
- 8315 [153]" RETURN = WERT ABSPEICHERN
- 8350 SYSLM,AD
- 8360 PRINT"[145][145][145][145]_[157][157][157]";
- 8370 GETA$:IFA$=""THEN8370
- 8371 IFA$="[133]"THENPOKE650,0:RETURN
- 8372 IFASC(A$)>47ANDASC(A$)<58THEN8395
- 8373 IFASC(A$)>64ANDASC(A$)<71THEN8395
- 8374 IFASC(A$)=13THEN8400
- 8378 IFA$="[134]"THENGOSUB8450:GOTO8300
- 8379 IFA$="[138]"THENGOSUB8600:GOTO8300
- 8380 IFA$="[135]"THENAD=AD-80
- 8381 IFA$="[136]"THENAD=AD+80
- 8382 IFA$="[139]"THENAD=AD-1024
- 8383 IFA$="[140]"THENAD=AD+1024
- 8384 IFA$="[145]"THENAD=AD-8
- 8385 IFA$=""THENAD=AD+8
- 8386 IFA$=""THENAD=AD+1
- 8387 IFA$="[157]"THENAD=AD-1
- 8388 IFAD<0THENAD=65535
- 8389 IFAD>65535THENAD=0
- 8390 W$="":GOTO8350
- 8395 IFW$=""THENW$=" "
- 8398 W$=W$+A$:IFLEN(W$)>2THENW$=RIGHT$(W$,2)
- 8399 PRINTW$"[157][157]";:GOTO8370
- 8400 IFW$=""THEN8410
- 8401 IFLEFT$(W$,1)=" "THENW$="0"+RIGHT$(W$,1)
- 8405 A$="00"+W$:GOSUB50400:POKEAD+16,A
- 8410 AD=AD+1:W$="":GOTO8350
- 8420 :
- 8450 REM TRANSVER
- 8455 SYSCL
- 8460 PRINT" TRANSVER (HEX):"
- 8465 PRINT" VON: ";:GOSUB50100:IFA$=""THENRETURN
- 8470 GOSUB50400:A1=A:IFA<0THEN8450
- 8475 PRINT" BIS: ";:GOSUB50100:IFA$=""THENRETURN
- 8480 GOSUB50400:E1=A:IFA<0THEN8450
- 8485 PRINT" NACH:";:GOSUB50100:IFA$=""THENRETURN
- 8490 GOSUB50400:A2=A:IFA<0THEN8450
- 8500 A$="06":PRINT" SPEICHERKONFIGURATION (AUCH HEX): ";A$;:EI%=2
- 8501 GOSUB50120:IFA$=""THENRETURN
- 8505 A$="00"+A$:GOSUB50400:IFA<0THEN84505
- 8540 E1=E1+1:IFE1>65535THENE1=E1-65536
- 8550 SYSCO,A1,E1,A2,A
- 8560 RETURN
- 8600 REM FILL
- 8605 SYSCL
- 8610 PRINT" SPEICHERBEREICH FUELLEN (HEX):"
- 8615 PRINT" (GREIFT IMMER AUF RAM ZU !)
- 8620 [153]" VON: ";:[141]50100:[139]A$[178]""[167][142]
- 8630 [141]50400:A1[178]A:[139]A[179]0[167]8600
- 8640 [153]" BIS: ";:[141]50100:[139]A$[178]""[167][142]
- 8650 [141]50400:E1[178]A:[139]A[179]0[167]8600
- 8660 A$[178]"FF":[153]" WERT:";A$;:EI%[178]2
- 8665 [141]50120:[139]A$[178]""[167][142]
- 8670 A$[178]"00"[170]A$:[141]50400:[139]A[179]0[167]8600
- 8680 E1[178]E1[170]1:[139]E1[177]65535[167]E1[178]E1[171]65536
- 8690 [158]FI,A1,E1,A
- 8695 [142]
- 8700 :
- 50000 [143] *** UNTERROUTINEN
- 50010 [143] AUF TASTENDRUCK WARTEN
- 50020 [151]198,0
- 50025 [139][194](214)[177]21[167][153]""
- 50030 [153]:[153]" T A S T E D R U E C K E N "
- 50045 [146]198,1,0:[151]198,0:[142]
- 50050 [143] EINGABE OK ?
- 50060 [151]198,0
- 50070 [153]:[153]" A L L E S OCLOSEK ACLOSEY (J/N) ? WAIT"
- 50075 [146]198,1,0:[161]A$
- 50080 [139]A$[179][177]"J"[175]A$[179][177]"N"[167]50075
- 50085 [142]
- 50100 [143] INPUT VON 16 ZEICHEN
- 50110 A$[178]"":
- 50120 [153]"_CMD";:[161]B$:[139]B$[179][177]""[167]50130
- 50122 [129]A[178]0[164]80:[130]:[153]"_WAITCMD";
- 50125 [161]B$:[139]B$[179][177]""[167]50130
- 50127 [129]A[178]0[164]80:[130]:[137]50120
- 50130 [139][198](B$)[178]13[167][153]"_":EI%[178]16:[142]
- 50140 [139][198](B$)[177]31[175][198](B$)[179]128[167]50200
- 50150 [139][198](B$)[177]161[167]50200
- 50160 [139]B$[179][177][199](20)[175]B$[179][177]"CMD"[167]50120
- 50170 [139][195](A$)[179]1[167]50120
- 50180 A$[178][200](A$,[195](A$)[171]1)
- 50190 [153]" CMDCMD_CMD";
- 50195 [137]50120
- 50200 [139][195](A$)[179]EI%[167]50300
- 50210 [153]" CMDCMD";
- 50220 A$[178][200](A$,[195](A$)[171]1)
- 50300 A$[178]A$[170]B$
- 50310 [153]B$;"_CMD";
- 50350 [137]50120
- 50400 [143] HEX IN DEZ (B$ IN B)
- 50410 A[178][171]1:[139][195](A$)[177]4[176][195](A$)[179]1[167][142]
- 50420 [129]X[178]1[164][195](A$)
- 50430 Z[178][198]([202](A$,X,1))
- 50440 [139]47[179]Z[175]Z[179]58[167]Z[178]Z[171]48:[137]50470
- 50450 [139]Z[179]65[176]Z[177]71[167]A[178][171]1:X[178]4:[130]:[142]
- 50460 Z[178]Z[171]55
- 50470 A[178]A[170]Z[172]16[174]([195](A$)[171]X)
- 50490 [130]:A[178]A[170]1:[142]
- 50500 [143] DEZ IN HEX (A IN A$)
- 50510 A$[178]"":[129]X[178]3[164]0[169][171]1:W[178][181](A[173]16[174]X)
- 50520 A[178]A[171]W[172]16[174]X:[139]W[177]9[167]W[178]W[170]7
- 50530 A$[178]A$[170][199](W[170]48)
- 50540 [130]:[142]
- 50600 [143] A ZULAESSIG ?
- 50610 [139]A[177]49151[175]A[179]57344[167]A[178]0
- 50620 [139]A[179]3[172]4096[176]A[177]65535[167]A[178]0
- 50640 [142]
- 50700 [143] AKTUELLE ADRESSE
- 50710 A[178][194](169)[170][194](170)[172]256:[153]
- 50720 [153]" EPROMADRESSE:";A;:[141]50500:[153]" = $";A$
- 50750 [142]
- 60000 :
-